1. Field of the Invention
The present invention relates to computer graphics systems and, more particularly, to a novel system and method for performing BLTs (BLock Transfers) in computer graphics systems.
2. Discussion of the Related Art
In the field of computer graphics, pictorial information is often stored as a bitmap, in which each pixel of an image corresponds to at least one bit in the bitmap. Generally, the number of bits used per pixel depends on the color pallet or spectrum supported by the graphics application. Often all or part of a bitmap must be moved from one location in a computer's memory (the “source” location) to another location (the “destination” location). Transfers of this type are called bitmap block transfers, or “BLT”s for short, and are typically carried out by a computer's operating system in response to a function call from an application program.
In one situation, an application program may have “drawn” a figure within a window displayed on a display. The representation for this figure may be stored in a bitmap within the system or graphics memory. To display the figure rapidly on the screen of a display device, the bitmap is block transferred (or “blitted”) from the source memory location to the video display (destination) memory location (e.g., frame buffer). A display device associated with the video display memory then displays the bitmap containing the figure. The video display memory is also commonly referred to as the screen memory or frame buffer for the display device.
Another common situation in which bitmaps (or blocks of memory) are blitted arises when a user (through a graphics interface) uses a mouse, for example, to drag a window from one screen location to another. In response to commands or function calls from the application program, in this case a window manager, a memory block corresponding to the source window is blitted to a memory block corresponding to the destination window.
In the past, graphics systems have used two-dimensional (2D) hardware to perform BLTs. In scalable three-dimensional (3D) systems, blitting has often caused problems due to bus limitations. Other circumstances also arise that create problems in performing BLTs. For example, if a window is only being moved slightly, such that the source and destination windows overlap, problems arise.
Furthermore, in systems having multiple/parallel rasterizers that are physically located on different integrated circuits, additional problems develop. Implementations in past graphics systems have involved the duplication of the frame buffer or other graphics data in the local memory associated with each of the rasterizers. When a BLT was performed, this required synchronization among the various, parallel memories.